package com.shared.model;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.Embedded;
import javax.persistence.Id;


import com.googlecode.objectify.Key;
import com.googlecode.objectify.annotation.Entity;
import com.googlecode.objectify.annotation.Unindexed;
import com.shared.data.IData;
import com.shared.utilitaire.Adresse;



@Entity
public class Apporteur implements IData{
	
	
	@Id private Long key;	
	private String societe ;	
	private String civilite ;	
	private String nom ;	
	private String prenom ;	
	private int codePostal ;	
	private String numeroTel ;	
	private String numeroFax ;	
	private String siteWeb ;	
	private String nature ;	
	private List<Key<Interlocuteur>> listeKeyInterlocteurs = new ArrayList<Key<Interlocuteur>>();	
	@Embedded private List<Adresse> listAdresses = new ArrayList<Adresse>();
	
	
	public Apporteur() {		
	}
	
	public Apporteur(String soc, String civ, String n, String p, int cp, String numTel, String numFax, String siteW, String nat){
		societe = soc ;
		civilite = civ ;
		nom = n ;
		prenom = p ;		
		codePostal = cp ;
		numeroTel = numTel ;
		numeroFax = numFax ;
		siteWeb = siteW ;
		nature = nat ;		
	}
	
	public Apporteur(String soc, String civ, String n, String p, int cp, String numTel, String numFax, String siteW, String nat,List<Adresse> listAdresses){
		societe = soc ;
		civilite = civ ;
		nom = n ;
		prenom = p ;		
		codePostal = cp ;
		numeroTel = numTel ;
		numeroFax = numFax ;
		siteWeb = siteW ;
		nature = nat ;		
		this.listAdresses = listAdresses;
	}
	
	public Apporteur(String soc, String civ, String n, String p, int cp, String numTel, String numFax, String siteW, String nat,List<Adresse> listAdresses,List<Key<Interlocuteur>> listeKeyInterlocteurs){
		societe = soc ;
		civilite = civ ;
		nom = n ;
		prenom = p ;		
		codePostal = cp ;
		numeroTel = numTel ;
		numeroFax = numFax ;
		siteWeb = siteW ;
		nature = nat ;		
		this.listAdresses = listAdresses;
		this.listeKeyInterlocteurs = listeKeyInterlocteurs;
	}
	
		
	public String getCivilite() {
		return civilite;
	}
	
	public int getCodePostal() {
		return codePostal;
	}
	
	public String getNature() {
		return nature;
	}
	
	public String getNom() {
		return nom;
	}
	
	public String getNumeroFax() {
		return numeroFax;
	}
	
	public String getNumeroTel() {
		return numeroTel;
	}
	
	public String getPrenom() {
		return prenom;
	}
	
	public String getSiteWeb() {
		return siteWeb;
	}
	
	public String getSociete() {
		return societe;
	}
	
	
	
	public void setCivilite(String civilite) {
		this.civilite = civilite;
	}
	
	public void setCodePostal(int codePostal) {
		this.codePostal = codePostal;
	}
	
		
	public void setNature(String nature) {
		this.nature = nature;
	}
	
	public void setNom(String nom) {
		this.nom = nom;
	}
	
	public void setNumeroFax(String numeroFax) {
		this.numeroFax = numeroFax;
	}
	
	public void setNumeroTel(String numeroTel) {
		this.numeroTel = numeroTel;
	}
	
	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}
	
	public void setSiteWeb(String siteWeb) {
		this.siteWeb = siteWeb;
	}
	
	public void setSociete(String societe) {
		this.societe = societe;
	}

	

	/**
	 * @param lisAdresses the lisAdresses to set
	 */
	public void setListAdresses(List<Adresse> listAdresses) {
		this.listAdresses = listAdresses;
	}

	/**
	 * @return the lisAdresses
	 */
	public List<Adresse> getListAdresses() {
		return listAdresses;
	}

	/**
	 * @param key the key to set
	 */
	public void setKey(Long key) {
		this.key = key;
	}

	/**
	 * @return the key
	 */
	public Long getKey() {
		return key;
	}

	/**
	 * @param listeKeyInterlocteurs the listeKeyInterlocteurs to set
	 */
	public void setListeKeyInterlocteurs(List<Key<Interlocuteur>> listeKeyInterlocteurs) {
		this.listeKeyInterlocteurs = listeKeyInterlocteurs;
	}

	/**
	 * @return the listeKeyInterlocteurs
	 */
	public List<Key<Interlocuteur>> getListeKeyInterlocteurs() {
		return listeKeyInterlocteurs;
	}
	
	public void addAdresse(Adresse a){
		listAdresses.add(a);
	}
	
	public void addInterlocuteur(Interlocuteur interlocuteur){		
		listeKeyInterlocteurs.add(new Key<Interlocuteur>(Interlocuteur.class, interlocuteur.getKey()));
	}
}
